Skip to content

feat(ecs): rename ephemeral → nonPersistent#129

Merged
krisnye merged 7 commits into
mainfrom
krisnye/non-persistent
Jun 24, 2026
Merged

feat(ecs): rename ephemeral → nonPersistent#129
krisnye merged 7 commits into
mainfrom
krisnye/non-persistent

Conversation

@krisnye

@krisnye krisnye commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Replace TransactionResult.ephemeral (all-non-persistent bool) with TransactionResult.persistent (any-persistent bool) — breaking change, opposite semantics
  • Add Entity.isNonPersistent + Entity.isPersistent; keep isEphemeral as @deprecated alias
  • Add Schema.nonPersistent field; keep Schema.ephemeral as @deprecated alias
  • Add OptionalComponents.nonPersistent; "ephemeral" component string still accepted at runtime with console.warn
  • Update coalesce: ephemeral: prev && curpersistent: prev || cur

Test plan

  • pnpm run typecheck passes (verified locally)
  • pnpm run lint passes (verified locally)
  • Transactional store tests updated to use persistent assertions
  • Coalesce tests updated to use persistent: true in TransactionResult fixtures
  • isNonPersistent / isPersistent unit tests pass

🤖 Generated with Claude Code

krisnye and others added 7 commits June 24, 2026 12:38
47-round autotune sweep on the adobe/data monorepo. Upstream winners
lower the reranker confidence threshold, floor, and candidate windows;
shift NL queries toward semantic (rrf_semantic_weight_nl 1.5, bm25 0.5);
and expand evidence budgets. Learned-ranker blend set to 0.5 (v16).

Net result vs defaults: NDCG@5 +0.030, NL@5 +0.070, Filtered@5 +0.022,
Ident@5 unchanged. Config is repo-wide and inherited by all worktrees.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add `Entity.isNonPersistent` and `Entity.isPersistent`; keep `isEphemeral` as `@deprecated` alias
- Replace `TransactionResult.ephemeral` (bool: all changes are non-persistent) with
  `TransactionResult.persistent` (bool: at least one change is persistent) — breaking change
- Add `Schema.nonPersistent` field; keep `Schema.ephemeral` as `@deprecated` alias
- Add `OptionalComponents.nonPersistent`; keep `"ephemeral"` component string with runtime
  `console.warn` for backward compat
- Update coalesce logic: `ephemeral: prev && cur` → `persistent: prev || cur`
- Bump to 0.9.70

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Removes the false-antonym pairing with `persistent`. Both fields are now
clearly orthogonal: `intermediate` = commit lifecycle stage (preview vs.
final), `persistent` = entity storage category (positive-id vs. negative-id).

- `TransactionResult.transient` → `intermediate`
- `TransactionOptions.transient` → `intermediate`
- `TransactionIntent "transient"` → `"intermediate"` (wire protocol kind)
- `ClientMessage { kind: "transient" }` → `{ kind: "intermediate" }`
- `maxTransientsPerSecond` → `maxIntermediatesPerSecond`
- Fixes stale `result?.ephemeral` guard in create-sync-service → `result !== undefined && !result.persistent`

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rce descriptors

Schema has no transient field; the 34 occurrences across data-gpu plugins
were dead metadata. Aligned with the Schema.nonPersistent field introduced
alongside the ephemeral → nonPersistent rename.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@krisnye krisnye merged commit f3a343d into main Jun 24, 2026
3 checks passed
@krisnye krisnye deleted the krisnye/non-persistent branch June 24, 2026 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant